﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Business;

namespace GraphicUserInterface.MainForm.Encrypt_Decrypt
{
    public partial class frDecryptData : Form
    {
        string extEncrypted = ".ect";
        int iUserID;

        public frDecryptData(int iUserID)
        {
            InitializeComponent();
            this.iUserID = iUserID;
        }

        private void btBack_Click(object sender, EventArgs e)
        {
            this.Owner.Show();
            this.Close();
        }

        private void btBrowseInput_Click(object sender, EventArgs e)
        {
            OpenFileDialog InputDialog = new OpenFileDialog();
            InputDialog.Filter = "Tập tin mã hóa (*.ect)|*.ect";
            InputDialog.InitialDirectory = Application.StartupPath;
            InputDialog.Title = "Chọn tập tin để giải mã";

            InputDialog.CheckFileExists = true;

            InputDialog.CheckPathExists = true;

            if (InputDialog.ShowDialog() == DialogResult.OK)
            {
                tbInput.Text = InputDialog.FileName;
                tbOutput.Text = tbInput.Text + extEncrypted;
            }
        }

        private void btBrowseOutput_Click(object sender, EventArgs e)
        {
            OpenFileDialog outputDialog = new OpenFileDialog();
            outputDialog.Filter = "Tất cả tập tin (*.*)|*.*";
            outputDialog.InitialDirectory = Application.StartupPath;
            outputDialog.Title = "Chọn đường dẫn lưu tập tin giải mã";

            outputDialog.CheckFileExists = true;

            outputDialog.CheckPathExists = true;

            if (outputDialog.ShowDialog() == DialogResult.OK)
            {
                tbOutput.Text = outputDialog.FileName;
            }
        }

        private void tbInput_Leave(object sender, EventArgs e)
        {
            if (tbInput.Text == "")
                return;
            tbOutput.Clear();

            tbOutput.Text = tbInput.Text.Replace(extEncrypted, "");
        }

        private bool IsInforValid()
        {
            bool bIsValid = true;
            string strMessages = "";

            if (tbInput.Text.Equals(""))
            {
                strMessages = strMessages + "Vui lòng chọn tập tin cần giải hóa.\n";
                bIsValid = false;
            }

            if (tbOutput.Text.Equals(""))
            {
                strMessages = strMessages + "Vui lòng chọn nơi lưu trữ tập tin kết quả.\n";
                bIsValid = false;
            }

            if (strMessages.Length != 0)
                MessageBox.Show(strMessages);

            return bIsValid;

        }

        private void btDecrypt_Click(object sender, EventArgs e)
        {
            if (!IsInforValid())
            {
                return;
            }

            EncryptDecryptBUS decryptBUS = new EncryptDecryptBUS();
            decryptBUS.decryptFile(this.iUserID, tbInput.Text, tbOutput.Text);

            MessageBox.Show("Giải mã tập tin thành công.");
        }
    }
}
